/*
 * HelpHandler.h
 *
 *  Created on: Mar 18, 2013
 *      Author: quanpv
 */

#ifndef HELPHANDLER_H_
#define HELPHANDLER_H_

//use shared pointer
#include <boost/shared_ptr.hpp>

typedef int Topic;
const Topic NO_HELP_TOPIC = -1;

class HelpHandler {
public:
	HelpHandler(boost::shared_ptr<HelpHandler>, Topic = NO_HELP_TOPIC);
	virtual ~HelpHandler();

	virtual bool HasHelp();
	virtual void SetHandler(boost::shared_ptr<HelpHandler>, Topic);
	virtual void HandleHelp();
private:
	boost::shared_ptr<HelpHandler> _successor;
	Topic _topic;
};

#endif /* HELPHANDLER_H_ */
